package main

import (
	"fmt"
	"strconv"
	"strings"
)

func main() {
	//第五章：go语言函数
	//学习go语言的字符串函数

	//统计字符串的长度，按照字节
	str := "hello,world"
	fmt.Println(len(str))

	//对字符串进行遍历
	for i := 0; i < len(str); i++ {
		fmt.Printf("%c\n", str[i])
	}

	//对字符串进行遍历，利用range关键字
	for index, val := range str {
		fmt.Printf("index=%d,val=%c\n", index, val)
	}

	//对字符串进行遍历，利用rune关键字
	str2 := "hello,world"
	r := []rune(str2)
	for i := 0; i < len(r); i++ {
		fmt.Printf("%c\n", r[i])
	}

	//字符串转为整数
	n, err := strconv.Atoi("123")
	if err != nil {
		fmt.Println("转换错误")
	} else {
		fmt.Println(n)
	}

	//整数转为字符串
	str = strconv.Itoa(123)
	fmt.Println(str)

	//查找子串是否在指定的字符串中
	b := strings.Contains("seafood", "foo")
	fmt.Println(b)

	//统计一个字符串有几个指定的子串
	num := strings.Count("cheese", "e")
	fmt.Println(num)

	//不区分大小写的字符串比较
	b = strings.EqualFold("abc", "Abc")
	fmt.Println(b)

	//返回子串在字符串第一次出现的index值，如果没有返回-1
	index := strings.Index("NLT_abc", "abc")
	fmt.Println(index)
}
